// 后台脚本，处理扩展的主要逻辑

// 创建右键菜单项
chrome.runtime.onInstalled.addListener(() => {
  // 先移除可能存在的同名菜单项，避免重复ID错误
  chrome.contextMenus.remove('aiTextHelper', () => {
    // 无论删除操作成功与否（菜单项存在或不存在），都继续创建新的菜单项
    // 如果lastError不是"Cannot find menu item"错误，则记录下来
    if (chrome.runtime.lastError && !chrome.runtime.lastError.message.includes('Cannot find menu item')) {
      console.warn('移除旧菜单项时出现意外错误:', chrome.runtime.lastError.message);
    }
    
    // 创建新的菜单项
    chrome.contextMenus.create({
      id: 'aiTextHelper',
      title: '使用AI助手处理文本',
      contexts: ['selection']
    }, () => {
      if (chrome.runtime.lastError) {
        console.error('创建右键菜单失败:', chrome.runtime.lastError.message);
      } else {
        console.log('右键菜单创建成功');
      }
    });
  });
});

// 监听右键菜单点击事件
chrome.contextMenus.onClicked.addListener((info, tab) => {
  if (info?.menuItemId === 'aiTextHelper' && info.selectionText) {
    chrome.storage.local.set({ selectedText: info.selectionText }, () => {
      if (chrome.runtime.lastError) {
        console.error('存储选中文本失败:', chrome.runtime.lastError.message);
        return;
      }
      
      // 打开弹出窗口
      if (chrome.action?.openPopup) {
        chrome.action.openPopup();
      }
    });
  }
});

// 监听来自内容脚本的消息
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request?.action === 'textSelected') {
    chrome.storage.local.set({ selectedText: request.text }, () => {
      if (chrome.runtime.lastError) {
        console.error('存储选中文本失败:', chrome.runtime.lastError.message);
      } else {
        console.log('已存储选中的文本:', request.text);
      }
    });
  }
  
  // 对于需要异步响应的消息，返回true
  return true;
});

// 监听扩展停止事件
chrome.runtime.onSuspend.addListener(() => {
  console.log('扩展正在被卸载');
});